In general, the system concerns reliable transport protocols supporting ordered delivery of data as well as unordered delivery of data. The stream control transmission protocol (SCTP) [1] is an example of such a transport protocol, developed in the SIGTRAN working group of IETF. It was originally designed for carrying PSTN telephony signaling messages. However, since it has several useful features that are not available in TCP, it is now seen as a general-purpose transport protocol and an alternative to TCP.
Normally, within a SCTP stream, data messages are delivered in order according to their stream sequence number. If a data message arrives out of order in the receiving endpoint (i.e. earlier), it must be held from delivery to the upper layer until all the messages in front of it are received and delivered to the upper layer. An SCTP endpoint can indicate that no ordered delivery is required for a particular DATA chunk transmitted within the stream. When an endpoint receives a DATA chunk indicated for unordered delivery, it may bypass the ordering mechanism and immediately deliver the data to the upper layer, as illustrated in FIG. 1 showing SCTP unordered delivery.
Unordered delivery helps avoiding head of line (HOL) blocking when applications are dealing with large amounts of independent transactions. HOL blocking occurs when multiple independent transactions are carried by a single data stream in order (e.g. a TCP connection) and some data in one of the transactions is late; all the other transactions after it are blocked from delivery to the upper layer and have to wait until the late data arrives even if they are not correlated to the transaction with late data arrival.
One example of this kind of application is the transport of SIP signaling messages between two SIP proxies 10-A, 10-B (e.g. call setup/teardown messages, billing information, and route query messages) for multiple SIP agents 20-A, 20-B, as illustrated in FIG. 2 showing SIP proxies exchanging signaling messages using SCTP as the transport protocol. These SIP signaling messages are independent of each other; the order of arrival of these signaling messages does not matter. However, it is important that they arrive timely. Using the unordered delivery of SCTP to carry SIP signaling messages between SIP proxies avoid HOL blocking present in TCP; with SCTP unordered delivery, the loss of a SIP message of a SIP transaction does not adversely affect the timely delivery of SIP messages of other transactions. HOL blocking can also be avoided by using the multi-streaming feature of SCTP (i.e. assign each SIP transaction its own SCTP stream). However, this requires more stream resources and might not be feasible. In [2], it was explicitly specified that a SIP entity SHOULD send every SIP message over stream zero with the unordered delivery when SCTP is used to carry SIP signaling messages.
Another example is the transport of AAA (Authentication, Authorization, and Accounting) messages. When a user authenticates to a security gateway or other entity in a network, the entity typically does not contain the vital information needed to authenticate the user. Instead the DIAMETER protocol is used to retrieve session authentication information from an AAA server, as illustrated in FIG. 3 showing a typical authentication use-case with a DIAMETER server. To avoid HOL blocking the interface between the AAA server 30 and the access gateway 40 can use the unordered delivery method of SCTP, or establish a separate reliable stream for each user 50. The interface is usually protected, and the TLS (Transport Layer Security) protocol is a common choice here. Since TLS cannot be used with unordered delivery (as will be shown below) multi-streaming is often used, which, as mentioned, requires more stream resources. An example where this system setup is used is the Generic Bootstrapping Architecture defined in [3].
It has been stated in [1] that the data security of SCTP associations can be achieved by using the IP authentication header (AH) [4] or the IP encapsulation header (ESP) [5] in the network layer. However, AH and ESP are not compatible with devices such as middle boxes. The data security of SCTP associations can also be achieved by using the transport layer security (TLS) protocol [6] on top of the transport layer, but only for ordered delivery. Usage of TLS over SCTP for ordered delivery has been described in [7]. Reference [8] describes the DTLS (Datagram Transport Layer Security) protocol, which is a datagram-compatible modification of TLS using sequence-number-based processing for all DTLS records.